/**
 * Event lancé par Request lors de chaque évènement
 * 
 * @param {Event} event l'event renvoyé par XMLHttpRequest
 * @param {Request} request l'objet Request associé
 */
function RequestEvent(event, request)
{
	/**
	 * L'objet Request
	 */
	var _request;
	/**
	 * L'event renvoyé par XMLHttpRequest
	 */
	var _event;
	/**
	 * Les octets total à chargé (0 si non supporté)
	 */
	var _bytesTotal;
	/**
	 * Les octets chargés (0 si non supporté)
	 */
	var _bytesLoaded;
	/**
	 * L'objet XMLHttpRequest
	 */
	var _xmlhttprequest;
	/**
	 * Le status de la requête
	 */
	var _status;
	
	/**
	 * Renvoie l'objet Request associé
	 * 
	 * @return {Request} l'objet Request
	 */
	this.getRequest = function()
	{
		return _request;
	};
	
	/**
	 * Renvoie le nombre d'octets à chargé
	 * 
	 * @return {int} le nombre total d'octets
	 */
	this.getBytesTotal = function()
	{
		return _bytesTotal;
	};
	
	/**
	 * Renvoie l'event envoyé par XMLHttpRequest
	 * 
	 * @return {Event} l'event
	 */
	this.getEvent = function()
	{
		return _event;
	};
	
	/**
	 * Renvoie le nombre d'octets déjà téléchargés
	 * 
	 * @return {int} le nombre d'octets
	 */
	this.getBytesLoaded = function()
	{
		return _bytesLoaded;
	};
	
	/**
	 * Renvoie l'objet XMLHttpRequest associé
	 * 
	 * @return {XMLHttpRequest} l'objet XMLHttpRequest
	 */
	this.getXMLHttpRequest = function()
	{
		return _xmlhttprequest;
	};
	
	/**
	 * Renvoie le code du status HTTP (200, 403, 404)
	 */
	this.getStatus = function()
	{
		return _status;
	};
	
	/**
	 * Constructeur de la classe
	 */
	function _construct(event, request)
	{
		_event = event;
		_request = request;
		
		_xmlhttprequest = request.getXMLHttpRequest();
		
		_bytesLoaded = 0;
		_bytesTotal = 0;
		
		// Si supporté, remplissage de _bytesLoaded et _bytesTotal
		if (isset(event.loaded))
			_bytesLoaded = event.loaded;
		if (isset(event.total))
			_bytesTotal = event.total;
			
		if (isset(_xmlhttprequest.status))
			_status = _xmlhttprequest.status
	}
	
	_construct(event,request);
}
